# -*- coding: utf-8 -*-
"""
Created on Mon Aug 14 14:49:33 2023

@author: skunk69
"""

import json

chinese_name = u'成人依恋量表（修订版）'
english_name = 'Adult Attachment Scale,Revision'
abbreviation = 'AAS-R'
category = u'家庭与人际关系量表'

outline = u"""成人依恋是指成人对其童年早期依恋经验的回忆和再现，以及当前对童年依恋经验的评价。成人人际关系发展完善与否和早期依恋经验有关，童年的依恋经验会在成长的过程中形成个体内部独有的心理工作模式或心理表征，如果在成长过程中亲子互动关系没有改变，它会影响到成年后亲密关系的建立、人际社会功能的表达以及人格功能和人格特质的形成。
《成人依恋量表》（Adult Attachment Scale, AAS）由Collins和Read于1990年在分类量表的基础上开发，1996年Collins对其加以修订。目前AAS已经成为主要的成人依恋的测量工具，特别是对成人亲密关系、伴侣关系的评定。为了适应中国人的习惯以及使之本土化，吴薇莉在2003年对其进行了修订。"""

instruction = u"""阅读下列语句，并衡量你对情感关系的感受程度。请考虑你的所有关系（过去的和现在的），并回答有关你在这些关系中通常感受的题目。如果你从来没有卷入进情感关系中，请按你认为的情感会是怎样的来回答。请在“完全不符合”、“较不符合”、“不能确定”、“较符合”和“完全符合”中选择与你的感受一致的一项。"""

with open('AAS-R.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()

items = {}
for line in lines:
    key,value = line.strip().split('.')
    items[key] = value

reverse_items = [2,7,8,13,16,17,18]
scales = [u'亲近',u'依赖',u'焦虑']
scales_items = [
    [1,6,8,12,13,17],# 亲近
    [2,5,7,14,16,18],# 依赖
    [3,4,9,10,11,15] # 焦虑
    ]

# check scales_items
print(f'scale length={[len(l) for l in scales_items]}')

check = []
for l in scales_items:
    check = check+l
print(f'len(check)={len(check)}')

# complementary set
check_set = {i for i in sorted(check)}^{i for i in range(1,19)}
print(f'complementary set= {check_set}')

factors = []
factors_scales = []
rating = [u'完全不符合',u'较不符合',u'不能确定',u'较符合',u'完全符合']
score_rules = list(range(1,6))

contents = {
    'instruction':instruction,
    'items':items,
    'reverse_items':reverse_items,
    'scales':scales,
    'scales_items':scales_items,
    'factors':factors,
    'factors_scales':factors_scales,
    'rating':rating,
    'score_rules':score_rules       
    }

implementation = u"""《成人依恋量表（修订版）》是一个自评量表。"""

reliability = u"""正常样本取自大学生群体，临床样本来源于神经症病房病人。亲近、依赖和焦虑分量表的内部一致性信度Cronbach alpha系数为0.7187，0.6202，0.7848。间隔四周亲近、依赖和焦虑分量表的重测信度分别为0.741，0.741，0.193。"""
validity = u"""采用探索性因素分析方法来检验AAS的结构效度，结果支持AAS原量表将成人依恋分为三个因子的理论构想。
非临床样本与临床样本的比较结果显示，病人组在亲近依赖、亲近、焦虑三个指标的均数，与正常对照组相比，其差异均有统计学意义。依赖量表在两组之间没有差异。"""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""首先将反向题目反向计分，然后计算3个分量表的平均分数，再将亲近和依赖合并平均，产生1个亲近依赖复合维度。
依恋类型的划分：1）安全型：亲近依赖均分>3，且焦虑均分<3；2）先占型：亲近依赖均分>3，且焦虑均分>3；3）拒绝型：亲近依赖均分<3，且焦虑均分<3；4）恐惧型：亲近依赖均分<3，且焦虑均分>3。
安全型：反映了个体在人际关系中的舒适，认为关系有价值，既有亲近感，又有自主性（对自我和他人都是积极的观点）。
先占型：具有焦虑和情绪化的特征，过度沉浸和依赖（人际关系对自我是消极的，对他人是积极的）。
拒绝型：特征是崇尚独立（对自我是积极的），否认渴望亲近（对他人是消极的）。
恐惧型：特征是焦虑、不信任和害怕拒绝（对自我和他人都是消极的）。"""

applications = u""""""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':contents,
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)